A convolution can be used to describe the amount of overlap when one function is shifted over another function, which may be useful in signal processing applications including, but not limited to, audio analysis, object recognition, and computer vision. Many types of transforms utilize a convolution such as a Fourier transform, a fast Fourier transform, and a wavelet transform. A convolution is usually based on the dot products of a mask with a representation of a signal at various offsets in, for example, space or time. A mask may be data, or a small compact signal, that is compared to a larger signal. Masks are generally small in comparison to the signal to which they are being compared. For example, for a given signal, a mask may be positioned over parts of the signal at various times or in particular locations. At each time point, the dot product of the mask with the part of the signal is computed to determine the response of the signal with the mask. The collection of dot products forms a trajectory of responses in time or space, depending on the signal, and this trajectory provides a final transform result.
Conventional methods of convolution, specifically the dot product of the representation of the signal and mask, may be limited because they typically are based on the numerical values rendered by the representation of the signal and the mask. This may cause the dot product to be sensitive to signal to noise ratios, dependent upon the signal shape, sensitive to the scale of the signal, or other shortcomings. These properties may be undesirable in signal processing because they may impair analysis or signal detection.